Resources used by components, such as Enterprise Java components, are reclaimed in order to enable those resources to be available to other components. Examples of such resources are connections, which represent one or more access channels to physical resources owned by or outside of a server, such as the J2EE server. These connections are used by the componentry to access back-end resource managers, like a relational database manager, message broker or legacy application server. An open connection represents various levels of resource consumption, like open sockets, virtual storage consumption, etc. If the componentry improperly or inefficiently manages the resources, then the system will suffer resource exhaustion, availability problems and/or performance problems, etc.
Previously, time-outs and garbage collection techniques have been employed by servers to address this problem. However, these solutions result in a delay in resource reclamation, and depending on the type of connection, and the amount of resources consumed by the unused open connection, may result in server interruption or performance problems, as well as intermittent failures, which may be difficult to debug.
Thus, a need still exists for improved capabilities to manage reclamation of resources, such as connections.